Current high-performance applications inject increasingly unpredictable, bursty traffic into data center networks, causing network congestion and degrading their own and other applications' performance. Congestion control protocols have been developed to alleviate these problems. These protocols inform traffic sources about the congestion in the network. Using this information, the traffic sources reduce the injection rate of their traffic. When congestion is not indicated, the traffic sources continually attempt to increase their traffic injection rates. The performance of the congestion control mechanism depends on several factors, such as notification delay and accuracy of notification.
Congestion control protocols for large-scale data centers are based mainly on forward explicit congestion notification (FECN), meaning that a congestion notification message (CNM) is propagated first from the detection point to the destination and is then reflected back from the destination to the traffic source. When the source of the traffic receives the CNM, it lowers the injection rate of the corresponding traffic flow. (A “flow” is a sequence of packets transmitted through the network from a particular source to a particular destination.) Typically, congested switches send congestion notifications to the destinations of packets that they forward by setting a specific FECN bit in the packet headers.
Direct backward explicit congestion notification (BECN) is currently used generally only by bridges in smaller, Layer-2 networks. IN BECN, the congestion notification is returned directly from the congested switch to the traffic source. BECN for Ethernet networks is defined in the IEEE 802.1Q-2011 standard, which defines a CNM that is directed from the congested bridge to the origin of the congesting flow. The CNM can include quantized feedback (QCN—quantized congestion notification) that is indicative of the severity of congestion.
A number of attempts to extend QCN to Layer-3 networks have been described in the patent literature. For example, U.S. Patent Application Publication 2015/0372918 describes a method for sending congestion notification messages through L3 (Layer-3) networks. As described in this publication, a data packet is received at a first switch in a first fabric block of an L3 network, and the first switch performs source MAC tagging of the data packet. The data packet is then forwarded to a second switch in a second fabric block of the L3 network, and the source MAC tag is maintained by the second switch and any intermediate switches. The second switch determines, in response to receiving the data packet, whether it is congested, and generates a notification message if it is congested. The notification message is L2 forwarded to the first fabric block, and further forwarded from the first switch to a source of the data packet using ACL matching.
As another example, Chinese Patent Application Publication CN 104852855 describes a congestion control method that comprises the steps of: obtaining a first message from a receiving cache of exchange equipment when the exchange equipment is detected to be congested; obtaining a source IP address of the first message when a source MAC address of the first message is the MAC address of gateway equipment; generating a first congestion control message according to the source IP address of the first message when the source IP address is not the IP address of the gateway equipment; and sending the first congestion message to the gateway equipment. According to the invention, congestion control over a three-layer SAN is realized, and the three-layer SAN is protected against packet loss, non-preserved order of messages, or the like.